import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_excel(r"water_tu/IS on CH4.xlsx", sheet_name="Daily")

# 假设'date'列包含时间戳信息
df['date'] = pd.to_datetime(df['date'])

df_colums = df.colums()


df.set_index('date', inplace=True)

# 选择要进行傅里叶变换的数据列
data = df['IS_AT'].values

# 计算采样间隔（假设时间点是均匀的，取两个相邻时间点的差值）
sampling_interval = (df.index[1] - df.index[0]).total_seconds()

# 傅里叶变换
transformed = np.fft.fft(data)

# 获取频率轴
frequencies = np.fft.fftfreq(data.size, d=sampling_interval)
print("Frequency range: ", frequencies.min(), frequencies.max())

# 绘制频谱图
plt.figure(figsize=(10, 5))
plt.plot(frequencies, np.abs(transformed))
plt.title(f'IS_TN-Fourier Transform - Magnitude Spectrum')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.grid(True)
# 设置横轴显示范围，例如显示 0 到 0.1 Hz 的范围
plt.xlim(0, 0.4*0.000001)  # 可以根据你的具体需求调整这个范围
plt.show()
